Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2020, 20:24
Новичок на форуме
Отправить личное сообщение для Scriptmann Посмотреть профиль Найти все сообщения от Scriptmann
 
Регистрация: 07.04.2020
Сообщений: 3

Проверка сертификата сервера клиентом
Отправляю AJAX запрос со своего сайта на API транспортной компании ПЭК и в ответ получаю статус 0. Перепробовал все возможные варианты.

Прочитал на их сайте: "Запрос должен осуществляться по протоколу HTTPS с обязательной проверкой сертификата сервера клиентом".

Возможно дело в проверке сертификата, как это организовать на JS ?

Мой код:
let urlCoords = `https://kabinet.pecom.ru/api/v1/branches/findzonebycoordinates/`,
    key = "some api key",
    log = "mylogin";				
			
let data = {
    "latitude": +localStorage.GEOLatitude,
    "longitude": +localStorage.GEOLongitude
               },
    sendData = JSON.stringify(data),
    req = new XMLHttpRequest();
						
req.onreadystatechange = function(){
    if(req.readyState != 4 || req.status != 200)
	console.log(req.readyState, req.status)						
    console.log(req.response)
   //let response = JSON.parse(req.response);
					}						
req.open("POST", urlCoords, true, log, key);						
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");						
req.setRequestHeader("Accept", "application/json");
req.send(sendData);

Последний раз редактировалось Scriptmann, 07.04.2020 в 20:31.
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2020, 20:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Обычно сертификат проверяет браузер (клиент). И он либо доверяет ему, либо нет
Поскольку на запрос
https://kabinet.pecom.ru/api/v1/bran...bycoordinates/
Сервер дает ответ (браузер его пропускает), то значит с сертификатом все в порядке.
Может быть проблема в cors?
В консоле никаких ошибок не выдается?
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2020, 21:50
Новичок на форуме
Отправить личное сообщение для Scriptmann Посмотреть профиль Найти все сообщения от Scriptmann
 
Регистрация: 07.04.2020
Сообщений: 3

Ошибки CORS в консоли нет и других ошибок тоже нет.

Вывел в консоль readyState и status:
readyState = 1, status = 0 
<empty string>
readyState = 4, status = 0
<empty string>
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2020, 07:29
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Наверно еще нужен

req.withCredentials = true
Ответить с цитированием
  #5 (permalink)  
Старый 08.04.2020, 13:11
Новичок на форуме
Отправить личное сообщение для Scriptmann Посмотреть профиль Найти все сообщения от Scriptmann
 
Регистрация: 07.04.2020
Сообщений: 3

Добавил, результат тот же. Если отправляю логин/пароль через

req.setRequestHeader('Authorization', 'Basic ' + btoa(log + ":" + key));

Тогда появляется ошибка CORS.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка ответа от сервера Ajax gam0ra Общие вопросы Javascript 4 13.03.2015 23:16
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
"success" и "failure" приём данных с сервера ??? potkin ExtJS 8 30.05.2012 09:27
ответ сервера не сохраняется в глобальную переменную cyberpunk AJAX и COMET 2 06.03.2012 11:57
Ответ сервера в плугине ajaxForm отдается неправильно. IgorOk jQuery 11 13.12.2009 04:35